// 注册高复用全局组件

// 将复用组件名称首字母大写
function initialUppercase(str: any) {
  return str.charAt(0).toUpperCase() + str.slice(1)
}

export default {
  // 利用install注册插件的形式，在main.ts中使用Vue.use()时会自动传入Vue实例
  install(Vue: any) {
    // 匹配同级的vue文件
    let allComponents = import.meta.glob('./**/*.vue', { eager: true })
    // 循环注册组件
    Object.keys(allComponents).forEach(item => {
      Vue.component(initialUppercase(item.replace(/\.\//, '').replace(/\.vue$/, '')), allComponents[item].default)
    })
  }
}